home *** CD-ROM | disk | FTP | other *** search
/ Mac Mania 2 / MacMania 2.toast / Demo's / Tools&Utilities / Programming / FBSpriteWorld 1.05b / Project 1.05b / GraphicUtils.incl < prev    next >
Encoding:
Text File  |  1994-04-29  |  1.8 KB  |  60 lines  |  [TEXT/ZBAS]

  1. 'GraphicUtils.incl by Robert Hommel
  2. '© Copyright 1994
  3. 'All rights granted for any use whatsoever
  4.  
  5. 'Disclaimer:  I've tested these routines quite thoroughly on my Mac
  6. 'LC running System 7.01 and FB 1.02c.  I make no promises or warranties 
  7. 'of any kind.
  8. '*********************************************************************
  9.  
  10. COMPILE 0, _MacsBugLabels _caseInsensitive _STRResource
  11. INCLUDE FILE _aplIncl
  12. DEFSTR LONG
  13. DEFINT A-Z
  14. '
  15. '
  16. '
  17. LOCAL MODE
  18. LOCAL FN FastOffsetRect(@T&,X,Y)
  19.   T&.Top%    = T&.Top%    + Y
  20.   T&.Left%   = T&.Left%   + X
  21.   T&.Bottom% = T&.Bottom% + Y
  22.   T&.Right%  = T&.Right%  + X
  23. END FN
  24. '
  25. '------------------ OFF SCREEN GRAPHICS UTILS -----------------------
  26. '
  27. LOCAL MODE                                        'returns an offscreen GWorld
  28. DIM T,L,B,R                                       'Requires 32-bit color QuickDraw
  29. LOCAL FN GetOffScrnGWorld(T;8)
  30.   CALL LOCALTOGLOBAL(T)
  31.   CALL LOCALTOGLOBAL(B)
  32.   QDErr = FN NEWGWORLD(offPort&,0,T,0,0,0)        'offPort contains offScreen port
  33.   LONG IF QDErr                                   'check for error
  34.     LONG IF offPort&
  35.       CALL DISPOSEGWORLD(offPort&)                'dump GWORLD block if necessary
  36.       offPort&=0
  37.     END IF
  38.   END IF
  39. END FN = offPort&
  40. '
  41. '
  42. '
  43. LOCAL MODE                                        'copy bitmap from offscreen to window
  44. LOCAL FN CopyOffScreenBits(offPort&,wndPort&,Src&,Dst&,copyMode,maskRgn&)
  45.   Locked = FN LOCKPIXELS(offPort&.portpixmap&)
  46.   CALL COPYBITS(#offPort&+2,#wndPort&+2,#Src&,#Dst&,copyMode,maskRgn&)
  47.   CALL UNLOCKPIXELS(offPort&.portpixmap&)
  48. END FN
  49. '
  50. '---------------------- GENERAL GRAPHIC UTILS -----------------------
  51. '
  52. LOCAL MODE
  53. DIM ST,SL,SB,SR
  54. DIM BT,BL,BB,BR
  55. LOCAL FN CenterRect(@smallRectPtr&,@bigRectPtr&)
  56.   ST;8 = smallRectPtr& : BT;8 = bigRectPtr&
  57.   CALL OFFSETRECT(#smallRectPtr&,BL+((BR-BL)-(SR-SL))/2-SL,BT+((BB-BT)-(SB-ST))/2-ST)
  58. END FN
  59.  
  60.